package com.qzsoft.zhjd.server.modules.asphalt.entity;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
 * @ClassName AsphaltMatchEntity
 * @Description 沥青混合料配比
 * @author linhuawei
 * @since 2021-09-03
 */
@Data
@EqualsAndHashCode(callSuper = false)
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ToString
@TableName("n_asphalt_match")
public class CollectAsphaltMatchEntity {
    /**
     * 主键
     */
    @TableId
    private String id;

    /**
     * 机构主键
     */
    private String baseCode;

    /**
     * 项目主键
     */
    private String projectId;

    /**
     * 拌合站主键
     */
    private String stationCode;

    /**
     * 级配类型
     */
    private String matchType;

    /**
     * 配方名称
     */
    private String matchName;

    /**
     * 配方编号
     */
    private String matchCode;

    /**
     * 现场中心
     */
    private String siteCenter;

    /**
     * 摊铺层级
     */
    private String pavingLevel;

    /**
     * 设计温度
     */
    private BigDecimal temperature;

    /**
     * 最大温度
     */
    private BigDecimal temperatureMax;

    /**
     * 最小温度
     */
    private BigDecimal temperatureMin;

    /**
     * 油石比
     */
    private BigDecimal asphaltAggregateRatio;

    /**
     * 油石比误差
     */
    private BigDecimal asphaltAggregateError;


    /**
     * 骨料1占比
     */
    private BigDecimal gravel1;

    /**
     * 骨料1名称
     */
    private String gravel1Name;

    /**
     * 骨料2占比
     */
    private BigDecimal gravel2;

    /**
     * 骨料2名称
     */
    private String gravel2Name;

    /**
     * 骨料3占比
     */
    private BigDecimal gravel3;

    /**
     * 骨料3名称
     */
    private String gravel3Name;

    /**
     * 骨料4占比
     */
    private BigDecimal gravel4;

    /**
     * 骨料4名称
     */
    private String gravel4Name;

    /**
     * 骨料5占比
     */
    private BigDecimal gravel5;

    /**
     * 骨料5名称
     */
    private String gravel5Name;

    /**
     * 骨料6占比
     */
    private BigDecimal gravel6;

    /**
     * 骨料6名称
     */
    private String gravel6Name;

    /**
     * 粉料1占比
     */
    private BigDecimal powder1;

    /**
     * 粉料1名称
     */
    private String powder1Name;

    /**
     * 粉料2占比
     */
    private BigDecimal powder2;

    /**
     * 粉料2名称
     */
    private String powder2Name;

    /**
     * 粉料3占比
     */
    private BigDecimal powder3;

    /**
     * 粉料3名称
     */
    private String powder3Name;

    /**
     * 再生料占比
     */
    private BigDecimal recycledMaterial;

    /**
     * 生产类型
     * @return
     */
    private String productionType;

    /**
     * 是否配置热料信息，0未配置，1已配置
     */
    private Integer hotConfig;

    /**
     * 是否配置冷料信息，0未配置，1已配置
     */
    private Integer coldConfig;

    /**
     * 添加人
     */
    private Long creator;

    /**
     * 添加时间
     */
    private Date createDate;

    /**
     * 修改人
     */
    private Long updater;

    /**
     * 修改时间
     */
    private Date updateDate;



    /**
     * 油石比上限值
     */
    public BigDecimal getAsphaltAggregateMax() {
        if(null != asphaltAggregateRatio && null != asphaltAggregateError) {
            return asphaltAggregateRatio.add(asphaltAggregateError);
        }
        return null;
    }

    /**
     * 油石比下限值
     */
    public BigDecimal getAsphaltAggregateMin() {
        if(null != asphaltAggregateRatio && null != asphaltAggregateError) {
            return asphaltAggregateRatio.subtract(asphaltAggregateError);
        }
        return null;
    }

}
